#include "figura.h"
//--------------------------------------------------------------------------------------------/

figura::figura(char* IDFigura){

ID_Fig = new char[strlen(IDFigura)+1];

strcpy (ID_Fig,IDFigura);

this->colorBordeGrafico = NULL;
this->colorRellenoGrafico = NULL;
this->tex = NULL;

}



//--------------------------------------------------------------------------------------------/

figura::figura(textura* text, color* colorRelleno, color* colorBorde)
{
	this->tex = text;
	this->colorBordeGrafico = colorBorde;
	this->colorRellenoGrafico = colorRelleno;
}


//---------------------------------------------------------------------------------------------/

void figura::getIdFigura(char * &Out_IDFig)
{

strcpy(Out_IDFig,ID_Fig);


}


//--------------------------------------------------------------------------------------------/


void figura::setColorBordeFigura(color* color)
{
	colorBordeGrafico = color;
}
//--------------------------------------------------------------------------------------------/
void figura::setColorRellenoFigura(color* color)
{
	colorRellenoGrafico = color;
}
//--------------------------------------------------------------------------------------------/

color* figura::getColorGrafico()
{
	return colorBordeGrafico;
}


void figura::preparandoGraficar() {
	if (this->tex == NULL && this->colorRellenoGrafico == NULL) {
		if (configurador::getInstancia()->getTexturaGeneral() != NULL) {
			this->tex = configurador::getInstancia()->getTexturaGeneral();	
		} else if (configurador::getInstancia()->getColorGeneral() != NULL) {
			this->tex = NULL;
			this->colorRellenoGrafico = configurador::getInstancia()->getColorGeneral();
		} else {
			this->tex = NULL;
			this->colorRellenoGrafico = configurador::getInstancia()->getColorPorDefecto();
		}
	}
	//esto es para salvar los null pointer exception
	if (this->colorRellenoGrafico == NULL) {
		this->colorRellenoGrafico = configurador::getInstancia()->getColorPorDefecto();
	}
	if (this->colorBordeGrafico == NULL) {
		this->colorBordeGrafico = configurador::getInstancia()->getColorPorDefecto();
	}
}

void figura::graficar() {
	this->preparandoGraficar();
	this->algoritmoGraficar();
}

//--------------------------------------------------------------------------------------------/
void figura::setTextura(textura* texturaParam)
{
	this->tex=texturaParam;
}
//--------------------------------------------------------------------------------------------/

figura::~figura() {

	delete this->colorBordeGrafico;
	delete this->colorRellenoGrafico;
	delete this->tex;
}

//--------------------------------------------------------------------------------------------/





